package com.ssky.bean.validator.core;

import java.util.HashMap;
import java.util.Map;

public interface IValidatorContext {
    public static final Map<String, Object> map = new HashMap<>();

    /**
     * @param maxErrCount 最大校验错误数,当错误达到最大数，不再继续进行校验
     */
    void setMaxErrCount(Integer maxErrCount);

    /**
     * @return 最大校验错误数
     */
    int getMaxErrCount();

    /**
     * 缓存规则执行的结果
     *
     * @param ruleId
     * @param rst
     * @return
     */
    void setRuleRstCache(String ruleId, Boolean rst);

    /**
     * @param ruleId 指定规则id
     * @return 获取缓存起来的规则执行结果, 如果为null则说明还未被缓存
     */
    Boolean getRuleRstCache(String ruleId);

    default void setAttribute(String key, Object value) {
        map.put(key, value);
    }

    default Object getAttribute(String key) {
        return map.get(key);
    }


}